在 Day11 - 陳述式與表達式 中有提到運算式為表達式,會回傳一個結果。運算式其實是一個簡單的函式,它是由 運算子 (Operator)
與 運算元 (Operant)
組合而成,透過符號或單詞來運算他前後的數值,並回傳一個結果。
以下面程式碼為例:
var nickName;
nickName = 'Carol';
=
是運算子,可將右邊參數賦予到左邊,並回傳一個結果nickName
以及 Carol
是運算子左右兩邊的值,為運算元
Carol
是運算式(表達式)回傳結果運算子有以下幾種類別:
詳細內容可看 MDN - 運算式與運算子
而依據運算元的數量,又可分為一元運算子
、二元運算子
及 三元運算子
,但絕大部分為二元運算子(左右兩邊運算元搭配中間運算子)
二元運算子需要有 1 個運算子、運算子左右兩邊各 1 個運算元,共 2 個運算元
運算元1 運算子 運算元2
ex: 1*1
var a;
a = 1 + 1;
運算過程:
var a;
1 + 1
a = 2
算術運算子
-> 二元運算子賦值運算子
-> 二元運算子1 + 1
,計算出結果 2
,回傳結果後,再賦予至左邊 變數 a
上,並回傳結果一元運算子的運算子大部分是單字,只需一個運算元,在運算子的前面或後面
運算子 運算元
ex:++a
運算元 運算子
ex:a++
delete
刪掉特定的物件
var data = [0, 1]
delete data[0];
typeof
查看運算元型別
var num = 1;
typeof a;
三元運算子只有一種,以 ?
及 :
2 個運算子、以及 3 個運算元結合而成
判斷式 ? 表達式1 : 表達式2
三元運算子會依據判斷式去決定回傳哪個表達式的結果,所以當 判斷式
結果為 true
則會回傳表達式1
,否則回傳遞表達式2
var number = 10;
(number < 15) ? '太少' : '太多';
'太少'
、'太多'
都是表達式,放在 Chrome 的 console 上時會回傳結果'太少'
此範例為 三元運算子
與 二元運算子
的組合
var number = 20;
var value = (number < 15) ? '太少' : '太多';
console.log(value);
運算過程:
var number = 20;
(number < 15) ? '太少' : '太多';
var value = '太多';
console.log(value);
false
,所以此三元運算子回傳第二個表達式 - '太多'
賦值運算子 -> 二元運算子
,將三元運算子回傳的值賦予至左邊 變數 value
上